package background

import (
	"individual/controllers"
	"individual/models"
)

type LinkController struct {
	controllers.BaseController
}

// AddDirectLink
// @Title	增加自定连接
// @Description 增加自定连接信息
// @Param linkname	formdata	string true	"链接名"
// @Param link 		formdata	string true	"链接"
// @Success 201 增加自定连接成功
// @Failure 403 增加自定连接失败
// @router /addDirectLink/ [post]
func (c *LinkController) AddDirectLink() {
	var dirLink = models.DirectLink{LinkName: c.GetString("linkname"), Link: c.GetString("link")}
	_, err := c.O.Insert(&dirLink)
	if err != nil {
		c.Data["json"] = models.GetRevaErr(err, "增加自定义连接失败")
		c.ServeJSON()
		return
	}
	c.Data["json"] = models.GetRevaOk(dirLink)
	c.ServeJSON()
}

// AddFriendLink
// @Title	AddFriendLink
// @Description 增加友链
// @Param linkname	formdata	string true	"链接名"
// @Param link 		formdata	string true	"链接"
// @Param summary	formdata	string false	"简介"
// @Param logo 		formdata	string false	"logo"
// @Success 201 增加友链成功
// @Failure 403 增加友链失败
// @router /addFriendLink/ [post]
func (c *LinkController) AddFriendLink() {
	var friendLink = models.FriendLink{LinkName: c.GetString("linkname"),
		Link:        c.GetString("link"),
		LinkSummary: c.GetString("summary"),
		LinkLogo:    c.GetString("logo"),
	}
	_, err := c.O.Insert(&friendLink)
	if err != nil {
		c.Data["json"] = models.GetRevaErr(err, "增加友链失败")
		c.ServeJSON()
		return
	}
	c.Data["json"] = models.GetRevaOk(friendLink)
	c.ServeJSON()
}

// UpdateDirectLink
// @Title	UpdateDirectLink
// @Description 修改自定连接信息
// @Param id		formdata	int   true	"链接id"
// @Param linkname	formdata	string true	"链接名"
// @Param link 		formdata	string true	"链接"
// @Success 201 修改自定连接成功
// @Failure 403 修改自定连接失败
// @router /updateDirectLink/ [put]
func (c *LinkController) UpdateDirectLink() {
	id, err := c.GetInt64("id")
	if err != nil {
		c.Data["json"] = models.GetRevaErr(err, "传入参数格式错误")
		c.ServeJSON()
		return
	}
	var dirLink = models.DirectLink{Id: id, LinkName: c.GetString("linkname"), Link: c.GetString("link")}
	_, err = c.O.Update(&dirLink)
	if err != nil {
		c.Data["json"] = models.GetRevaErr(err, "修改自定义连接失败")
		c.ServeJSON()
		return
	}
	c.Data["json"] = models.GetRevaOk("修改自定义连接成功")
	c.ServeJSON()
}

// UpdateFriendLink
// @Title	UpdateFriendLink
// @Description 更改友链
// @Param id		formdata	int   true	"链接id"
// @Param linkname	formdata	string true	"链接名"
// @Param link 		formdata	string true	"链接"
// @Param summary	formdata	string false	"简介"
// @Param logo 		formdata	string false	"logo"
// @Success 201 更改友链成功
// @Failure 403 更改友链失败
// @router /updateFriendLink/ [put]
func (c *LinkController) UpdateFriendLink() {
	id, err := c.GetInt64("id")
	if err != nil {
		c.Data["json"] = models.GetRevaErr(err, "传入的参数有误")
		c.ServeJSON()
		return
	}
	var friendLink = models.FriendLink{
		Id:          id,
		LinkName:    c.GetString("linkname"),
		Link:        c.GetString("link"),
		LinkSummary: c.GetString("summary"),
		LinkLogo:    c.GetString("logo"),
	}
	_, err = c.O.Update(&friendLink)
	if err != nil {
		c.Data["json"] = models.GetRevaErr(err, "更改友链失败")
		c.ServeJSON()
		return
	}
	c.Data["json"] = models.GetRevaOk("更改友链成功")
	c.ServeJSON()
}

// DeleteFriendLink
// @Title	DeleteFriendLink
// @Description 删除友链
// @Param id	path	int   true	"链接id"
// @Success 201 删除友链成功
// @Failure 403 删除友链失败
// @router /delFriendLink/:id [delete]
func (c *LinkController) DeleteFriendLink() {
	id, err := c.GetInt64(":id")
	if err != nil {
		c.Data["json"] = models.GetRevaErr(err, "传入的参数有误")
		c.ServeJSON()
		return
	}
	_, err = c.O.Delete(&models.FriendLink{Id: id})
	if err != nil {
		c.Data["json"] = models.GetRevaErr(err, "删除友链失败")
		c.ServeJSON()
		return
	}
	c.Data["json"] = models.GetRevaOk("删除友链成功")
	c.ServeJSON()
}

// DeleteDirectLink
// @Title	DeleteDirectLink
// @Description 删除自定义链接
// @Param id	path	int   true	"链接id"
// @Success 201 删除自定义链接成功
// @Failure 403 删除自定义链接失败
// @router /delDirectLink/:id [delete]
func (c *LinkController) DeleteDirectLink() {
	id, err := c.GetInt64(":id")
	if err != nil {
		c.Data["json"] = models.GetRevaErr(err, "传入的参数有误")
		c.ServeJSON()
		return
	}
	_, err = c.O.Delete(&models.DirectLink{Id: id})
	if err != nil {
		c.Data["json"] = models.GetRevaErr(err, "删除自定义链接失败")
		c.ServeJSON()
		return
	}
	c.Data["json"] = models.GetRevaOk("删除自定义链接成功")
	c.ServeJSON()
}
